Template Type Deduction

2024-09-12

最后编辑于:2024-09-13

    #Cpp
    #template
template <typename T>
void f(ParamType param);

模版类型推断

  1. 如果expr是引用,忽略引用部分
  2. 使用expr的类型去匹配ParamType,确定ParamType和模板类型T

若ParamType是T&,T会按照expr的类型推导 若ParamType是const T&,T会被推导为常量类型

指针类型的推导相同

万能引用(Universal reference)

  • 若expr为左值,会推导为左值引用
  • 若expr是右值,则还是右值